home *** CD-ROM | disk | FTP | other *** search
/ Merciful 1 / Merciful - Disc 1.iso / software / a / asm_one / asm-onev1.25a.dms / in.adf / Release3.1 / AutoDocs3.1.lha / doc / queue-handler.doc < prev    next >
Encoding:
Text File  |  1993-08-12  |  3.6 KB  |  105 lines

  1. TABLE OF CONTENTS
  2.  
  3. queue-handler/queue_handler
  4. queue-handler/queue_handler                       queue-handler/queue_handler
  5.  
  6.    NAME
  7.        queue_handler -- an 'infinite' pipe (FIFO) handler. (V37)
  8.  
  9.    SYNOPSIS
  10.        Open("PIPE:[channel_name][[/[buf_size]][/max_buffers]]]");
  11.  
  12.    FUNCTION
  13.        Queue-handler takes data from the output channel, buffers it up,
  14.        allocating more memory as needed, and sends it to the input channel,
  15.        as requested by the applications. Queue-handler never locks the output
  16.        channel unless max_buffers was specified. Buffer size can be
  17.        specified only on the first reference to a particular channel.
  18.  
  19.        Queue-handler works by invoking a seperate process every time an
  20.        open packet is received, and uses a FIFO buffer pool approach to
  21.        track the actual data.
  22.  
  23.    INPUTS
  24.        channel_name - unique channel name to specify. Must begin with a
  25.                       non-numeric character. The channel_name is
  26.                       optional.
  27.  
  28.        buf_size - Size in bytes of the buffers to allocate
  29.                   (default is 4096). The buf_size is optional.
  30.  
  31.        max_buffers - maximum number of buffers allowed. Will suspend
  32.                      the output channel if exceeded. A max_buffers value of 0
  33.                      indicates there should be no fixed limit on the number
  34.                      of buffers allocated.
  35.  
  36.     PACKETS
  37.     ACTION_FINDINPUT
  38.     ACTION_FINDOUTPUT
  39.     ACTION_FINDUPDATE
  40.     ACTION_READ
  41.     ACTION_WRITE
  42.     ACTION_END
  43.     ACTION_IS_FILESYSTEM
  44.  
  45.    MOUNTLIST ENTRIES
  46.     This is the default mountlist entry used for Queue-Handler:
  47.  
  48.            PIPE:   Handler   = L:Queue-Handler
  49.                    Priority  = 5
  50.                    StackSize = 3000
  51.                    GlobVec   = -1
  52.            #
  53.  
  54.     Below is an extended mountlist entry which lets you specify a default
  55.     number of buffers, and their size. There are some extra fields added
  56.     at the end of the mountlist entry which aren't used for anything, but
  57.     the Mount command requires that these fields be present. In this
  58.     mountlist, the "Buffers" field indicates the default maximum number
  59.     of buffers, and "SectorSize" indicates the size of these buffers.
  60.  
  61.            PIPE:    FileSystem = L:Queue-Handler
  62.                     Priority   = 5
  63.                     StackSize  = 3000
  64.                     GlobVec    = -1
  65.                     SectorSize = 1024
  66.                     Buffers    = 2
  67.  
  68.                     /* these are unused, but required by Mount */
  69.                 Surfaces        = 1
  70.                 SectorsPerTrack = 1
  71.                 LowCyl          = 0
  72.                 HighCyl         = 1
  73.                 Device          = ""
  74.                 Unit            = 0
  75.     #
  76.  
  77.    EXAMPLE
  78.        From process 1:
  79.            list >pipe: work: all
  80.  
  81.        From process 2:
  82.            type pipe:
  83.  
  84.        To gather the results of several C compilations:
  85.            lc >pipe:ll foo
  86.            lc >pipe:ll bar
  87.            lc >pipe:ll road
  88.            lc >pipe:ll kill
  89.            type pipe:ll
  90.  
  91.        To use channel names:
  92.            list >pipe:crazy
  93.            copy #?.c to >pipe:all_c/32000  ;Specifies a channel 'all_c' and
  94.                                            ;a buffer size of 32000
  95.                                            ;bytes
  96.  
  97.        To set a limit on the number of buffers to 5:
  98.            dir >pipe://5       ; create a channel without a channel-name, and
  99.                                ; only allow 5 buffer entries.
  100.  
  101.    BUGS
  102.        Full checking is not done to ensure that the application can't read
  103.        from a write channel or vice-versa. The results of this operation
  104.        shall be undefined. Don't do it.
  105.